package com.sanyang.pda.net;

import com.sanyang.pda.bean.AgvBean;
import com.sanyang.pda.bean.AlreadyDeliveryBean;
import com.sanyang.pda.bean.BindBgvinfoBean;
import com.sanyang.pda.bean.ByBarcodeBean;
import com.sanyang.pda.bean.CrossDockingBean;
import com.sanyang.pda.bean.DeliveryStatisticsBean;
import com.sanyang.pda.bean.DisassemblyAddInfo;
import com.sanyang.pda.bean.GoodsDetailBean;
import com.sanyang.pda.bean.HaveTestedBean;
import com.sanyang.pda.bean.LoginBean;
import com.sanyang.pda.bean.LssuedStorageBean;
import com.sanyang.pda.bean.ManualDeliveryBean;
import com.sanyang.pda.bean.ManualOutBoundStatisticsBean;
import com.sanyang.pda.bean.ManualOutboundDetailBean;
import com.sanyang.pda.bean.ManualPalletBean;
import com.sanyang.pda.bean.ManualPickingBean;
import com.sanyang.pda.bean.MoveRespose;
import com.sanyang.pda.bean.MovementLogBean;
import com.sanyang.pda.bean.OutWarehousingBean;
import com.sanyang.pda.bean.PalletBean;
import com.sanyang.pda.bean.PalletDetailBean;
import com.sanyang.pda.bean.PalletStatisticsBean;
import com.sanyang.pda.bean.PickingDeliveryBean;
import com.sanyang.pda.bean.PickingDetailBean;
import com.sanyang.pda.bean.PickingStatisticsBean;
import com.sanyang.pda.bean.QualityDetailBean;
import com.sanyang.pda.bean.RandomSamplingBean;
import com.sanyang.pda.bean.ReasonListBean;
import com.sanyang.pda.bean.SamplingDetailBean;
import com.sanyang.pda.bean.ScatteredBean;
import com.sanyang.pda.bean.SearchStockDetailBean;
import com.sanyang.pda.bean.StockAbnormalBean;
import com.sanyang.pda.bean.StockStatisticsBean;
import com.sanyang.pda.bean.StorageInfoBean;
import com.sanyang.pda.bean.TakeStockBean;
import com.sanyang.pda.bean.TakeStockListBean;
import com.sanyang.pda.bean.UnderDetectionBean;
import com.sanyang.pda.bean.UploadBean;
import com.sanyang.pda.bean.UserInfo;
import com.sanyang.pda.bean.VerifyPalletBean;
import com.sanyang.pda.bean.request.BingAGVBean;
import com.sanyang.pda.bean.request.PdaCreateTaskRequest;
import com.wangshen.base.net.bean.BaseAppEntity;
import com.wangshen.base.net.bean.BaseRowsAppEntity;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface ApiService {
    /**
     * 登录
     * @return
     */
    @POST("/pda/pdaSignIn/signIn")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<LoginBean>> signIn(@Body RequestBody body);
   /* *//**
     * PDA首页缓存区/库存区占用信息
     * @return
     */
    @GET("/pda/front/page/storageUseInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<StorageInfoBean>> storageUseInfo();
    /**
     * 登录
     * @return
     */
    @GET("/pda/pdaSignIn/getLoginInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<UserInfo>> getLoginInfo();

    //手工码垛
    /**
     * 入库单列表信息
     * @return
     */
    @GET("/pda/manual/inboundList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<ManualPalletBean>>> inboundList(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize);

    /**
     *入库商品信息
     * @return
     */
    @GET("/pda/manual/inboundDetail")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> inboundDetail(@Query("entryNo") String entryNo,@Query("articleId") String articleId,@Query("pallet") String pallet);
    /**
     *合法性校验
     * @return
     */
    @POST("/pda/manual/qualifyVerify")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<VerifyPalletBean>> qualifyVerify(@Body RequestBody body);
    /**
     *盘点提交
     * @return
     */
    @POST("/pda/manual/inventorySubmit")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> inventorySubmit(@Body RequestBody body);
    /**
     *盘点提交
     * @return
     */
    @POST("/pda/manual/palletShelves")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> palletShelves(@Body RequestBody body);
    /**
     * 明细
     * @return
     */
    @GET("/pda/manual/palletDetail")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<PalletDetailBean>>> palletDetail(@Query("entryNo") String entryNo);

    /**
     * 统计
     * @return
     */
    @GET("/pda/manual/count")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<PalletStatisticsBean>>> count(@Query("entryNo") String entryNo);
    /**
     * 入库商品信息(入库单号+商品编码)
     * @return
     *//*
    @GET("/pda/manual/selectArticleInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ArticleInfoBean>> selectArticleInfo(@Query("entryNo") String entryNo,@Query("articleId") String articleId);*/
    //抽样取样
    /**
     * 入库单列表信息
     * @return
     */
    @GET("/pda/sampling/inboundList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<RandomSamplingBean>>> samplingList(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize);
    /**
     * 入库单列表信息
     * @return
     */
    @GET("/pda/sampling/qaUsedSamplingList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<RandomSamplingBean>>> qaUsedSamplingList(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize);
    /**
     * 入库单列表信息
     * @return
     */
    @GET("/pda/sampling/qaUsedQualityList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<RandomSamplingBean>>> qaUsedQualityList(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize);
    /**
     * PDA查库存区列表
     * @return
     */
    @POST("/pda/sampling/qaSamplingSubmit")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> samplingArticleInfoSubmit(@Body RequestBody body);
    /**
     * 已取样
     * @return
     */
    @GET("/pda/sampling/qaSampledDetail")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<SamplingDetailBean>>> samplingDetail(@Query("qaNo") String entryNo);
    /**
     * 待质检列表
     * @return
     */
    @GET("/pda/sampling/waitQualityInspectionList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<UnderDetectionBean>>> waitDetectList(@Query("qaNo") String entryNo);
    /**
     * 已质检列表
     * @return
     */
    @GET("/pda/sampling/waitQualityInspectionList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<HaveTestedBean>>> samplingResultList(@Query("qaNo") String entryNo);
    /**
     * 质检明细信息数据
     * @return
     */
    @GET("/pda/sampling/qualityInspectionDetail")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<QualityDetailBean>> palletizingInfo(@Query("samplingNo") String samplingNo);
    /**
     * 质检明细信息数据
     * @return
     */
    @GET("/pda/sampling/deleteOneDetail")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<HaveTestedBean>>> deleteOneDetail(@Query("samplingResultNo") String samplingResultNo);
    /**
     * 质检结果提交
     * @return
     */
    @POST("/pda/sampling/qualityInspectionCompleted")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> qualityInspectionCompleted(@Body RequestBody body);

    /**
     * 质检结果提交
     * @return
     */
    @POST("/pda/sampling/samplingResult")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> samplingResult(@Body RequestBody body);


    /**
     * 质检结果提交
     * @return
     */
    @POST("/pda/sampling/addReasonSave")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<GoodsDetailBean>> addReasonSave(@Body RequestBody body);

    /**
     * 已质检列表
     * @return
     */
    @GET("/basic/article/selectArticleInfoByBarcode")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ByBarcodeBean>> selectArticleInfoByBarcode(@Query("barcode") String barcode);
    /**
     * 已质检列表
     * @return
     */
    @GET("/system/dict/data/type/{dictType}")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<ReasonListBean>>> selectType(@Path("dictType") String dictType);
    /**
     * 扫描商品条码(返回集合,需要手动选取商品,如只返回一个就直接默认选中回填)
     * @return
     */
    @GET("/basic/article/selectArticleInfoByBarCodeAndNo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<ByBarcodeBean>>> selectArticleInfoByBarCodeAndNo(@Query("barcode") String barcode,@Query("number")String number);
    //手工上架
    /**
     * 入库单列表信息
     * @return
     */
    @GET("/pda/shelve/inboundList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<ManualDeliveryBean>>> manualDeliveryList(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize);
    /**
     * 扫描托盘信息
     * @return
     */
    @GET("/pda/shelve/palletizingInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<PalletBean>>> palletizingInfo(@Query("pallet") String pallet,@Query("entryNo") String entryNo);
    /**
     * 托盘下架
     * @return
     */
    @POST("/pda/shelve/takePalletDown")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<PalletBean>> takePalletDown(@Body RequestBody body);
    /**
     * 上架
     * @return
     */
    @POST("/pda/shelve/putOnShelves")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<PalletBean>> putOnShelves(@Body RequestBody body);
    /**
     * 取料上架
     * @return
     */
    @POST("/pda/shelve/reclaimingPutOnShelves")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<PalletBean>> reclaimingPutOnShelves(@Body RequestBody body);
    /**
     *统计
     * @return
     */
    @GET("/pda/manual/count")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<DeliveryStatisticsBean>>> countDelivery(@Query("entryNo") String entryNo);


    //取样返回
    /**
     * 样品归还
     * @return
     */
    @POST("/pda/sampling/sampleReturn")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<PalletBean>> sampleReturn(@Body RequestBody body);
    /**
     * 无需放回
     * @return
     */
    @POST("pda/sampling/sampleIsNotBack")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<PalletBean>> sampleIsNotBack(@Body RequestBody body);

    //手工拣选
    /**
     * 手工拣选/手工出库-列表
     * @return
     * */
    @GET("/pda/manualPicking/manualPickingList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<ManualPickingBean>>> manualPickingList(@Query("pageNum") int pageNum,@Query("pageSize") int pageSize);

    /**
     * 出库Tap1详情
     * @return
     * */
    @GET("/pda/manualPicking/deliveryInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<PickingDeliveryBean>> deliveryInfo(@Query("deliveryNo") String deliveryNo, @Query("pallet") String pallet,@Query("storagebinId") String storagebinId, @Query("articleId") String articleId);

    /**
     * 确认下架
     * @return
     * */
    @POST("/pda/manualPicking/confirmOffShelf")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ManualPickingBean>> confirmOffShelf(@Body RequestBody body);
    /**
     *进入待拣
     * @return
     * */
    @POST("/pda/manualPicking/enterToBePicked")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ManualPickingBean>> enterToBePicked(@Body RequestBody body);
    /**
     *拣选完毕
     * @return
     * */
    @POST("/pda/manualPicking/pickingCompleted")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ManualPickingBean>> pickingCompleted(@Body RequestBody body);
    /**
     * 拆零列表
     * @return
     */
    @GET("/pda/manualPicking/disassemblyList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<ScatteredBean>>> disassemblyList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize, @Query("deliveryNo") String deliveryNo, @Query("pickingPallet") String pallet);
    /**
     * 拆零添加详情
     * @return
     */
    @GET("/pda/manualPicking/disassemblyAddInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<DisassemblyAddInfo>>disassemblyAddInfo(@Query("deliveryNo") String deliveryNo, @Query("pallet") String pallet, @Query("storagebinId") String storagebinId, @Query("articleId") String articleId);

    /**
     * 拆零添加确认
     * @return
     */
    @POST("/pda/manualPicking/disassemblyAddConfirm")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ManualPickingBean>> disassemblyAddConfirm(@Body RequestBody body);
    /**
     * 拆零添加确认
     * @return
     */
    @POST("/pda/manualPicking/entireTrayConfirm")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<ManualPickingBean>> entireTrayConfirm(@Body RequestBody body);
    /**
     * 统计Tap3
     * @return
     */
    @GET("/pda/manualPicking/pickingStatistics")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<PickingStatisticsBean>>> pickingStatistics(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize, @Query("deliveryNo") String deliveryNo);
    /**
     * 明细Tap4
     * @return
     */
    @GET("/pda/manualPicking/pickingDetailed")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<PickingDetailBean>>> pickingDetailed(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize, @Query("deliveryNo") String deliveryNo);



    //手工出库
    /**
     * 统计Tap3
     * @return
     */
    @GET("/pda/manualDelivery/deliveryStatistics")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<ManualOutBoundStatisticsBean>>> deliveryStatistics(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize, @Query("deliveryNo") String deliveryNo);

    /**
     * 明细Tap4
     * @return
     */
    @GET("/pda/manualDelivery/deliveryDetailed")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<ManualOutboundDetailBean>>> deliveryDetailed(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize, @Query("deliveryNo") String deliveryNo);

    /**
     * 组托Tap1详情
     * @return
     */
    @GET("/pda/manualDelivery/stackPalletInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<OutWarehousingBean>>> stackPalletInfo(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize, @Query("deliveryNo") String deliveryNo, @Query("storagebinId") String storagebinId);

    /**
     * 添加确认
     * @return
     */
    @POST("/pda/manualDelivery/addConfirm")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<OutWarehousingBean>> addConfirm(@Body RequestBody body);

    /**
     * PDA手工搬运-获取缓存区/下料口的存储中或占用 的库位列表
     * @return
     */
    @POST("/pda/manualDelivery/deliveryConfirm")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<OutWarehousingBean>> deliveryConfirm(@Body RequestBody body);

    //越库出库
    /**
     * 越库出库-列表
     * @return
     */
    @GET("/pda/crossWarehouseDelivery/crossWarehouseDeliveryList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<CrossDockingBean>>> crossWarehouseDeliveryList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);



    //手工盘点
    /**
     * 1.app获取盘库任务列表
     * @return
     */
    @POST("/app/countTask/list")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<TakeStockListBean>>> countTaskList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);
    /**
     * app获取托盘区或者库位的库存商品列表,手工盘库-统计详情也使用该接口
     * @return
     */
    @POST("/app/countTask/stockList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<TakeStockBean>>> stockList(/*@Query("pageNum") int pageNum, @Query("pageSize") int pageSize,*/@Body RequestBody body);
    /**
     * app获取托盘区或者库位的库存商品列表,手工盘库-统计详情也使用该接口
     * @return
     */
    @GET("/app/countTaskStock/commodityInventoryInformation")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<TakeStockBean>>> commodityInventoryInformation(@Query("storagebinId") String pageNum, @Query("taskNo") String taskNo);
    /**
     * app获取托盘区或者库位的库存商品列表,手工盘库-统计详情也使用该接口
     * @return
     */
    @POST("/app/countTask/stockList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<TakeStockBean>>> stockPageList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize,@Body RequestBody body);
    /**
     * app获取托盘区或者库位的库存商品列表,手工盘库-统计详情也使用该接口
     * @return
     */
    @GET("/app/countTaskStock/statisticalDetails")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<TakeStockBean>>> statisticalDetails(@Query("taskNo") String taskNo, @Query("storagebinId") String storagebinId);
    /**
     * app获取托盘区或者库位的库存商品列表,手工盘库-统计详情也使用该接口
     * @return
     */
    @POST("/app/countTaskStock/add")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> stockAdd(@Body RequestBody body);
    /**
     * app获取托盘区或者库位的库存商品列表,手工盘库-统计详情也使用该接口
     * @return
     */
    @POST("/app/countTaskStock/confirmOrAddCommodityInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> confirmOrAddCommodityInfo(@Body RequestBody body);
    /**
     * app当前库位商品盘点完成（点击完成按钮
     * @return
     */
    @POST("/app/countTaskStock/complete")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> getTaskStockComplete(@Body RequestBody body);
    /**
     * app当前库位商品盘点完成（点击完成按钮
     * @return
     */
    @POST("/app/countTaskStock/inventoryComplete")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> inventoryComplete(@Body RequestBody body);
    /**
     * app手工盘库-统计列表
     * @return
     */
    @GET("/app/countTaskStock/statisticsList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<StockStatisticsBean>>> countTaskstatisticsList(@Query("taskNo") String taskNo);
    /**
     * app手工盘库-异常-查询盘亏的商品列表
     * @return
     */
    @GET("/app/countTaskStock/stockListOfLoss")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<StockAbnormalBean>>> stockListOfLoss(@Query("taskNo") String taskNo,@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);


    //库存查询

    /**
     * app手工盘库-统计列表
     * @return
     */
    @GET("/pda/stock/inventoryQuery")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<SearchStockDetailBean>>inventoryQuery(@Query("storagebinId") String storagebinId);

    @Multipart
    //@FormUrlEncoded
    @POST("/common/upload")
        /*@Headers("Content-Type:application/json;charset=UTF-8")*/
    Observable<BaseAppEntity<UploadBean>> uploadImage(@Part MultipartBody.Part state);


    //移库
    /**
     * 移库Tap查询
     * @return
     */
    @GET("/pda/mobileInventory/mobileInventoryInfo")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<MoveRespose>>mobileInventoryInfo(@Query("pallet") String pallet);
    /**
     * 移库-移出
     * @return
     */
    @GET("/pda/mobileInventory/moveOut")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<SearchStockDetailBean>>moveOut(@Query("pallet") String pallet,@Query("storagebinId") String storagebinId);
    /**
     * 移库-移入
     * @return
     */
    @GET("/pda/mobileInventory/moveIn")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<SearchStockDetailBean>>moveIn(@Query("pallet") String pallet,@Query("storagebinId") String storagebinId);
    /**
     * 移库-移入
     * @return
     */
    @GET("/pda/mobileInventory/selectShiftInfoList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<MovementLogBean>>>selectShiftInfoList();
    /**
     * 2.入库增加赏味日期缺省值选择(新增)
     * @return
     */
    @GET("/basic/entryInfoConfig/queryList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<String>>>palletShelves(@Query("entryNo") String entryNo,@Query("articleId") String articleId,@Query("type") Integer type);
    /**
     * 添加缺省值接口地址:
     * @return
     */
    @POST("/basic/entryInfoConfig/addEntryInfoConfig")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> addEntryInfoConfig(@Body RequestBody body);
    //不合格管理
    /**
     * 1.已入库列表
     * @return
     */
    @GET("/unqualified/entry/toBeProcessedList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<AlreadyDeliveryBean>>>toBeProcessedList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);
    /**
     * 2.添加确认
     * @return
     */
    @POST("/unqualified/entry/add")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> addUnqualified(@Body RequestBody body);
    /**
     * 3.报废确认
     * @return
     */
    @POST("/unqualified/entry/scrapConfirmation")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> scrapConfirmation(@Query("unqualifiedNo") String unqualifiedNo,@Query("scrappedNum") int scrappedNum);

    /**
     * 4.重新包装确认
     * @return
     */
    @POST("/unqualified/entry/repackageConfirmation")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> repackageConfirmation(@Body RequestBody body);

    /**
     * 5.已包装列表
     * @return
     */
    @GET("/unqualified/repackage/unqualifiedRepackageList")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseRowsAppEntity<List<MovementLogBean>>>unqualifiedRepackageList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    /**
     *6.回用确认
     * @return
     */
    @POST(" /unqualified/repackage/recyclingConfirmation")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<TakeStockListBean>> recyclingConfirmation(@Body RequestBody body);

    /**
     * 4.重新包装确认
     * @return
     */
    @GET("/api/RbsyPda/GetStorageLocationsQuickListBySLType")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<LssuedStorageBean>>> getStorageLocationsQuickList(@Query("slType") String slType);

    /**
     *6.获取绑定
     * @return
     */
    @GET("/api/RbsyPda/PDABindBgvinfoByPdaSn")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<BindBgvinfoBean>> getPadBindBgvinfoByPdaSn(@Query("pdaSN") String pdaSN);

    /**
     *6.绑定AGV
     * @return
     */
    @POST("/api/RbsyPda/PDABindAGV")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<String>> getPDABindAGV(@Body BingAGVBean bean);

    /**
     *6.解除绑定
     * @return
     */
    @GET("/api/RbsyPda/PDAunbindAGV")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<String>> PDAlnbindAGv(@Query("pdaSN") String pdaSN);

    /**
     *6.获取AGV列表
     * @return
     */
    @GET("/api/RbsyPda/GetDeviceBaseInfoByType")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<List<AgvBean>>> getDeviceBaseInfoByType(@Query("deviceType") String deviceType);

    /**
     *6.货架区完成
     * @return
     */
    @GET("/api/RbsyPda/ContinueTask")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<Object>> getContinueTask(@Query("pdaSN") String pdaSN,@Query("agvkey") String agvkey);

    /**
     *6.下发任务
     * @return
     */
    @POST("/api/RbsyPda/CreateTask")
    @Headers("Content-Type:application/json;charset=UTF-8")
    Observable<BaseAppEntity<Object>> ebsyPdaCreateTask(@Body PdaCreateTaskRequest body);
}

